home *** CD-ROM | disk | FTP | other *** search
/ Aminet 44 / Aminet 44 (2001)(GTI - Schatztruhe)[!][Aug 2001].iso / Aminet / misc / emu / p-interp.lha / p-interp-0.4 / pcode.h < prev    next >
Text File  |  2001-05-20  |  14KB  |  333 lines

  1. /*
  2.  
  3.   P-Code interpreter (to run the apple pascal system)
  4.   Copyright (C) 2000 Mario Klebsch
  5.  
  6.   This program is free software; you can redistribute it and/or modify
  7.   it under the terms of the GNU General Public License as published by
  8.   the Free Software Foundation; either version 2 of the License, or
  9.   (at your option) any later version.
  10.  
  11.   This program is distributed in the hope that it will be useful,
  12.   but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.   GNU General Public License for more details.
  15.  
  16.   You should have received a copy of the GNU General Public License
  17.   along with this program; if not, write to the Free Software
  18.   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  19.  
  20.  
  21.   $Log: pcode.h,v $
  22.   Revision 1.2  2001/05/20 13:12:02  mario
  23.   CVS-Idents und Logs eingefügt
  24.  
  25.  
  26. */
  27.  
  28.  
  29. #define SLDC_0 0            /* Short LoaD Constant 0 */
  30. #define SLDC_1 1            /* Short LoaD Constant 1 */
  31. #define SLDC_2 2            /* Short LoaD Constant 2 */
  32. #define SLDC_3 3            /* Short LoaD Constant 3 */
  33. #define SLDC_4 4            /* Short LoaD Constant 4 */
  34. #define SLDC_5 5            /* Short LoaD Constant 5 */
  35. #define SLDC_6 6            /* Short LoaD Constant 6 */
  36. #define SLDC_7 7            /* Short LoaD Constant 7 */
  37. #define SLDC_8 8            /* Short LoaD Constant 8 */
  38. #define SLDC_9 9            /* Short LoaD Constant 9 */
  39. #define SLDC_10 10            /* Short LoaD Constant 10 */
  40. #define SLDC_11 11            /* Short LoaD Constant 11 */
  41. #define SLDC_12 12            /* Short LoaD Constant 12 */
  42. #define SLDC_13 13            /* Short LoaD Constant 13 */
  43. #define SLDC_14 14            /* Short LoaD Constant 14 */
  44. #define SLDC_15 15            /* Short LoaD Constant 15 */
  45. #define SLDC_16 16            /* Short LoaD Constant 16 */
  46. #define SLDC_17 17            /* Short LoaD Constant 17 */
  47. #define SLDC_18 18            /* Short LoaD Constant 18 */
  48. #define SLDC_19 19            /* Short LoaD Constant 19 */
  49. #define SLDC_20 20            /* Short LoaD Constant 20 */
  50. #define SLDC_21 21            /* Short LoaD Constant 21 */
  51. #define SLDC_22 22            /* Short LoaD Constant 22 */
  52. #define SLDC_23 23            /* Short LoaD Constant 23 */
  53. #define SLDC_24 24            /* Short LoaD Constant 24 */
  54. #define SLDC_25 25            /* Short LoaD Constant 25 */
  55. #define SLDC_26 26            /* Short LoaD Constant 26 */
  56. #define SLDC_27 27            /* Short LoaD Constant 27 */
  57. #define SLDC_28 28            /* Short LoaD Constant 28 */
  58. #define SLDC_29 29            /* Short LoaD Constant 29 */
  59. #define SLDC_30 30            /* Short LoaD Constant 30 */
  60. #define SLDC_31 31            /* Short LoaD Constant 31 */
  61. #define SLDC_32 32            /* Short LoaD Constant 32 */
  62. #define SLDC_33 33            /* Short LoaD Constant 33 */
  63. #define SLDC_34 34            /* Short LoaD Constant 34 */
  64. #define SLDC_35 35            /* Short LoaD Constant 35 */
  65. #define SLDC_36 36            /* Short LoaD Constant 36 */
  66. #define SLDC_37 37            /* Short LoaD Constant 37 */
  67. #define SLDC_38 38            /* Short LoaD Constant 38 */
  68. #define SLDC_39 39            /* Short LoaD Constant 39 */
  69. #define SLDC_40 40            /* Short LoaD Constant 40 */
  70. #define SLDC_41 41            /* Short LoaD Constant 41 */
  71. #define SLDC_42 42            /* Short LoaD Constant 42 */
  72. #define SLDC_43 43            /* Short LoaD Constant 43 */
  73. #define SLDC_44 44            /* Short LoaD Constant 44 */
  74. #define SLDC_45 45            /* Short LoaD Constant 45 */
  75. #define SLDC_46 46            /* Short LoaD Constant 46 */
  76. #define SLDC_47 47            /* Short LoaD Constant 47 */
  77. #define SLDC_48 48            /* Short LoaD Constant 48 */
  78. #define SLDC_49 49            /* Short LoaD Constant 49 */
  79. #define SLDC_50 50            /* Short LoaD Constant 50 */
  80. #define SLDC_51 51            /* Short LoaD Constant 51 */
  81. #define SLDC_52 52            /* Short LoaD Constant 52 */
  82. #define SLDC_53 53            /* Short LoaD Constant 53 */
  83. #define SLDC_54 54            /* Short LoaD Constant 54 */
  84. #define SLDC_55 55            /* Short LoaD Constant 55 */
  85. #define SLDC_56 56            /* Short LoaD Constant 56 */
  86. #define SLDC_57 57            /* Short LoaD Constant 57 */
  87. #define SLDC_58 58            /* Short LoaD Constant 58 */
  88. #define SLDC_59 59            /* Short LoaD Constant 59 */
  89. #define SLDC_60 60            /* Short LoaD Constant 60 */
  90. #define SLDC_61 61            /* Short LoaD Constant 61 */
  91. #define SLDC_62 62            /* Short LoaD Constant 62 */
  92. #define SLDC_63 63            /* Short LoaD Constant 63 */
  93. #define SLDC_64 64            /* Short LoaD Constant 64 */
  94. #define SLDC_65 65            /* Short LoaD Constant 65 */
  95. #define SLDC_66 66            /* Short LoaD Constant 66 */
  96. #define SLDC_67 67            /* Short LoaD Constant 67 */
  97. #define SLDC_68 68            /* Short LoaD Constant 68 */
  98. #define SLDC_69 69            /* Short LoaD Constant 69 */
  99. #define SLDC_70 70            /* Short LoaD Constant 70 */
  100. #define SLDC_71 71            /* Short LoaD Constant 71 */
  101. #define SLDC_72 72            /* Short LoaD Constant 72 */
  102. #define SLDC_73 73            /* Short LoaD Constant 73 */
  103. #define SLDC_74 74            /* Short LoaD Constant 74 */
  104. #define SLDC_75 75            /* Short LoaD Constant 75 */
  105. #define SLDC_76 76            /* Short LoaD Constant 76 */
  106. #define SLDC_77 77            /* Short LoaD Constant 77 */
  107. #define SLDC_78 78            /* Short LoaD Constant 78 */
  108. #define SLDC_79 79            /* Short LoaD Constant 79 */
  109. #define SLDC_80 80            /* Short LoaD Constant 80 */
  110. #define SLDC_81 81            /* Short LoaD Constant 81 */
  111. #define SLDC_82 82            /* Short LoaD Constant 82 */
  112. #define SLDC_83 83            /* Short LoaD Constant 83 */
  113. #define SLDC_84 84            /* Short LoaD Constant 84 */
  114. #define SLDC_85 85            /* Short LoaD Constant 85 */
  115. #define SLDC_86 86            /* Short LoaD Constant 86 */
  116. #define SLDC_87 87            /* Short LoaD Constant 87 */
  117. #define SLDC_88 88            /* Short LoaD Constant 88 */
  118. #define SLDC_89 89            /* Short LoaD Constant 89 */
  119. #define SLDC_90 90            /* Short LoaD Constant 90 */
  120. #define SLDC_91 91            /* Short LoaD Constant 91 */
  121. #define SLDC_92 92            /* Short LoaD Constant 92 */
  122. #define SLDC_93 93            /* Short LoaD Constant 93 */
  123. #define SLDC_94 94            /* Short LoaD Constant 94 */
  124. #define SLDC_95 95            /* Short LoaD Constant 95 */
  125. #define SLDC_96 96            /* Short LoaD Constant 96 */
  126. #define SLDC_97 97            /* Short LoaD Constant 97 */
  127. #define SLDC_98 98            /* Short LoaD Constant 98 */
  128. #define SLDC_99 99            /* Short LoaD Constant 99 */
  129. #define SLDC_100 100            /* Short LoaD Constant 100 */
  130. #define SLDC_101 101            /* Short LoaD Constant 101 */
  131. #define SLDC_102 102            /* Short LoaD Constant 102 */
  132. #define SLDC_103 103            /* Short LoaD Constant 103 */
  133. #define SLDC_104 104            /* Short LoaD Constant 104 */
  134. #define SLDC_105 105            /* Short LoaD Constant 105 */
  135. #define SLDC_106 106            /* Short LoaD Constant 106 */
  136. #define SLDC_107 107            /* Short LoaD Constant 107 */
  137. #define SLDC_108 108            /* Short LoaD Constant 108 */
  138. #define SLDC_109 109            /* Short LoaD Constant 109 */
  139. #define SLDC_110 110            /* Short LoaD Constant 110 */
  140. #define SLDC_111 111            /* Short LoaD Constant 111 */
  141. #define SLDC_112 112            /* Short LoaD Constant 112 */
  142. #define SLDC_113 113            /* Short LoaD Constant 113 */
  143. #define SLDC_114 114            /* Short LoaD Constant 114 */
  144. #define SLDC_115 115            /* Short LoaD Constant 115 */
  145. #define SLDC_116 116            /* Short LoaD Constant 116 */
  146. #define SLDC_117 117            /* Short LoaD Constant 117 */
  147. #define SLDC_118 118            /* Short LoaD Constant 118 */
  148. #define SLDC_119 119            /* Short LoaD Constant 119 */
  149. #define SLDC_120 120            /* Short LoaD Constant 120 */
  150. #define SLDC_121 121            /* Short LoaD Constant 121 */
  151. #define SLDC_122 122            /* Short LoaD Constant 122 */
  152. #define SLDC_123 123            /* Short LoaD Constant 123 */
  153. #define SLDC_124 124            /* Short LoaD Constant 124 */
  154. #define SLDC_125 125            /* Short LoaD Constant 125 */
  155. #define SLDC_126 126            /* Short LoaD Constant 126 */
  156. #define SLDC_127 127            /* Short LoaD Constant 127 */
  157. #define ABI    128            /* ABsolute Integer */
  158. #define ABR    129            /* ABsolure Real */
  159. #define ADI    130            /* ADd Integer */
  160. #define ADR    131            /* ADd Real */
  161. #define LAND    132            /* Logical AND */
  162. #define DIF    133            /* set DIFference */
  163. #define DVI    134            /* DiVide Integer */
  164. #define DVR    135            /* DiVide Real */
  165. #define CHK    136            /* CHecK */
  166. #define FLO    137            /* FLoat next to tOs */
  167. #define FLT    138            /* FLoat Tos */
  168. #define INN    139            /* set IN operation */
  169. #define INT    140            /* set INTersection */
  170. #define LOR    141            /* Logical OR */
  171. #define MODI    142            /* MODulo Integer */
  172. #define MPI    143            /* MultiPly Integer */
  173. #define MPR    144            /* MultiPly Real */
  174. #define NGI    145            /* NeGate Integer */
  175. #define NGR    146            /* NeGate Real */
  176. #define LNOT    147            /* Logical NOT */
  177. #define SRS    148            /* SubRange Set */
  178. #define SBI    149            /* SuBstract Integer */
  179. #define SBR    150            /* SiBstract Real */
  180. #define SGS    151            /* SinGleton Set */
  181. #define SQI    152            /* SQuare Integer */
  182. #define SQR    153            /* SQare Real */
  183. #define STO    154            /* STOre indirect */
  184. #define IXS    155            /* IndeX String array */
  185. #define UNI    156            /* set UNIon */
  186. #define LDE    157            /* LoaD Extended */
  187. #define CSP    158            /* Call Standard Procedure */
  188. #define LDCN    159            /* LoaD Constant Nil */
  189. #define ADJ    160            /* ADJust set */
  190. #define FJP    161            /* False JumP */
  191. #define INC    162            /* INCrement field pointer */
  192. #define IND    163            /* INdex and loaD */
  193. #define IXA    164            /* IndeX Array */
  194. #define LAO    165            /* Load glObal Address */
  195. #define LSA    166            /* Load String Address */
  196. #define LAE    167            /* Load Address Extended */
  197. #define MOV    168            /* MOVe words */
  198. #define LDO    169            /* LoaD glObal */
  199. #define SAS    170            /* String ASsign */
  200. #define SRO    171            /* StoRe glObal */
  201. #define XJP    172            /* case JumP */
  202. #define RNP    173            /* Return from Non-base Procedure */
  203. #define CIP    174            /* Call Intermeduiate Procedure */
  204. #define EQU    175            /* EQUal */
  205. #define GEQ    176            /* Greater or EQual */
  206. #define GRT    177            /* GReaTer */
  207. #define LDA    178            /* LoaD intermediate Address */
  208. #define LDC    179            /* LoaD multiple word Constant */
  209. #define LEQ    180            /* Less or EQual */
  210. #define LES    181            /* LESs */
  211. #define LOD    182            /* LOaD intermediate */
  212. #define NEQ    183            /* Not EQual */
  213. #define STR    184            /* SToRe intermediate */
  214. #define UJP    185            /* Unconditional JumP */
  215. #define LDP    186            /* LoaD Packed field */
  216. #define STP    187            /* STore Packed field */
  217. #define LDM    188            /* LoaD Multiple words */
  218. #define STM    189            /* STore Multiple words */
  219. #define LDB    190            /* LoaD Byte */
  220. #define STB    191            /* STore Byte */
  221. #define IXP    192            /* IndeX Packed array */
  222. #define RBP    193            /* Return from Base Procedure */
  223. #define CBP    194            /* Call Base Procedure */
  224. #define EQUI    195            /* EQUal Integer */
  225. #define GEQI    196            /* Greater or EQual Integer */
  226. #define    GRTI    197            /* GReaTer Integer */
  227. #define LLA    198            /* Load Local Address */
  228. #define LDCI    199            /* LoaD Constant Integer */
  229. #define LEQI    200            /* Less or EQual Integer */
  230. #define LESI    201            /* LESs Integer */
  231. #define LDL    202            /* LoaD Local */
  232. #define NEQI    203            /* Not EQual Integer */
  233. #define STL    204            /* STore Local */
  234. #define CXP    205            /* Call eXternal Procedure */
  235. #define CLP    206            /* Call Local Procedure */
  236. #define CGP    207            /* Call Global Procedure */
  237. #define LPA    208            /* Load Packed Array */
  238. #define STE    209            /* STore Extended */
  239.  
  240. #define EFJ    211            /* Equal False Jump */
  241. #define NFJ    212            /* Not equal False Jump */
  242. #define BPT    213            /* BreakPoinT */
  243. #define XIT    214            /* eXIT */
  244. #define NOP    215            /* No OPeration */
  245. #define SLDL_1    216            /* Short LoaD Local 1 */
  246. #define SLDL_2    217            /* Short LoaD Local 2 */
  247. #define SLDL_3    218            /* Short LoaD Local 3 */
  248. #define SLDL_4    219            /* Short LoaD Local 4 */
  249. #define SLDL_5    220            /* Short LoaD Local 5 */
  250. #define SLDL_6    221            /* Short LoaD Local 6 */
  251. #define SLDL_7    222            /* Short LoaD Local 7 */
  252. #define SLDL_8    223            /* Short LoaD Local 8 */
  253. #define SLDL_9    224            /* Short LoaD Local 9 */
  254. #define SLDL_10    225            /* Short LoaD Local 10 */
  255. #define SLDL_11    226            /* Short LoaD Local 11 */
  256. #define SLDL_12    227            /* Short LoaD Local 12 */
  257. #define SLDL_13    228            /* Short LoaD Local 13 */
  258. #define SLDL_14    229            /* Short LoaD Local 14 */
  259. #define SLDL_15    230            /* Short LoaD Local 15 */
  260. #define SLDL_16    231            /* Short LoaD Local 16 */
  261. #define SLDO_1    232            /* Short LoaD glObal 1 */
  262. #define SLDO_2    233            /* Short LoaD glObal 2 */
  263. #define SLDO_3    234            /* Short LoaD glObal 3 */
  264. #define SLDO_4    235            /* Short LoaD glObal 4 */
  265. #define SLDO_5    236            /* Short LoaD glObal 5 */
  266. #define SLDO_6    237            /* Short LoaD glObal 6 */
  267. #define SLDO_7    238            /* Short LoaD glObal 7 */
  268. #define SLDO_8    239            /* Short LoaD glObal 8 */
  269. #define SLDO_9    240            /* Short LoaD glObal 9 */
  270. #define SLDO_10    241            /* Short LoaD glObal 10 */
  271. #define SLDO_11    242            /* Short LoaD glObal 11 */
  272. #define SLDO_12    243            /* Short LoaD glObal 12 */
  273. #define SLDO_13    244            /* Short LoaD glObal 13 */
  274. #define SLDO_14    245            /* Short LoaD glObal 14 */
  275. #define SLDO_15    246            /* Short LoaD glObal 15 */
  276. #define SLDO_16    247            /* Short LoaD glObal 16 */
  277. #define SIND_0    248            /* Short load INDirect */
  278. #define SIND_1    249            /* Short INdex 1 and loaD  */
  279. #define SIND_2    250            /* Short INdex 2 and loaD  */
  280. #define SIND_3    251            /* Short INdex 3 and loaD  */
  281. #define SIND_4    252            /* Short INdex 4 and loaD  */
  282. #define SIND_5    253            /* Short INdex 5 and loaD  */
  283. #define SIND_6    254            /* Short INdex 6 and loaD  */
  284. #define SIND_7    255            /* Short INdex 7 and loaD  */
  285.  
  286. #define CSP_IOC        0        /* IoCheck() */
  287. #define CSP_NEW        1        /* new() */
  288. #define CSP_MVL        2        /* moveleft() */
  289. #define CSP_MVR        3        /* moveright() */
  290. #define CSP_XIT        4        /* exit() */
  291. #define CSP_UREAD    5        /* unitread() */
  292. #define CSP_UWRITE    6        /* unitwrite() */
  293. #ifndef APPLE_1_3
  294. #define CSP_IDS        7        /* idsearch() */
  295. #define CSP_TRS        8        /* treesearch() */
  296. #endif
  297. #define CSP_TIM        9        /* time() */
  298. #define CSP_FLC        10        /* fillchar() */
  299. #define CSP_SCN        11        /* scan() */
  300. #define CSP_USTAT    12        /* unitstat() */
  301.  
  302. #define CSP_LDSEG    21        /* LoadSegment() */
  303. #define CSP_ULDSEG    22        /* UnloadSegment() */
  304. #define CSP_TRC        23        /* trunc() */
  305. #define CSP_RND        24        /* round() */
  306.  
  307. #define CSP_MRK        32        /* mark() */
  308. #define CSP_RLS        33        /* release() */
  309. #define CSP_IOR        34        /* ioresult() */
  310. #define CSP_UBUSY    35        /* unitbusy() */
  311. #define CSP_POT        36        /* PwrOfTen() */
  312. #define CSP_UWAIT    37        /* unitwait() */
  313. #define CSP_UCLEAR    38        /* unitclear() */
  314. #define CSP_HLT        39        /* halt() */
  315. #define CSP_MAV        40        /* memavail() */
  316.  
  317. #define XSYSERR        0
  318. #define XINVNDX        1        /* invalid index */
  319. #define XNOPROC        2        /* no segment */
  320. #define XNOEXIT        3        /* exit from uncalled procedure */
  321. #define XSTKOVR        4        /* stack overflow */
  322. #define XINTOVR        5        /* integer overflow */
  323. #define XDIVZER        6        /* divide by zero */
  324. #define XBADMEM        7        /* invalid memory reference */
  325. #define XUBREAK        8        /* user break */
  326. #define XSYIOER        9        /* system IO error */
  327. #define XUIOERR        10        /* user IO error */
  328. #define XNOTIMP        11        /* unimplemented instruction */
  329. #define XFPIERR        12        /* floating point math error */
  330. #define XS2LONG        13        /* string to long */
  331. #define XHLTBPT        14        /* Halt, Breakpoing */
  332. #define XBRKPNT        15        /* Breakpoint */
  333.